#!/bin/bash

# This script sets up various components needed
# to run HSC.

# For now remove all previous version of this software

if [ "$USER" != "root" -a "$HOME" != "/root" ]; then
   echo  "ERROR: Only 'root' can install HSC!"
   exit 2
fi

CIMOMID=/var/hsc/sniacimom.pid

cd /
image=$1
if [ "$image" = "" ]
then
   echo "Please specify directory containing install images."
   echo "usage: installHSC <directory>"
   exit 0
fi

lced_process=`ps -ea|grep lced |awk '{ print $1 }'`
if [ "$lced_process" != "" ]
then
  echo "Stopping lced daemons..."
  for i in $lced_process
  do
   kill -9 $i 2>/dev/null
  done
fi

if [ -f $CIMOMID ]; then
   pid=`cat $CIMOMID`
   kill -9 $pid
   rc=$?
   rm -f $CIMOMID
   if [ $rc -eq 0 ]; then
	  rm -rf $CIMOMID
 	  echo "SNIA Cimom (PID=$pid) stopped."
   else
      echo "Failed to stop SNIA Cimom (PID=$pid)."
   fi
fi

echo "Removing previous version, please wait ...."
if [ -d /usr/websm ]
then
  rm -rf /usr/websm
fi

if [ -d /opt/hsc ]
then
  rm -rf /opt/hsc
fi


#
# Start install HSC
#
echo "Installing new version, please wait..."

tar -xf $image/websm.tar
tar -xf $image/hsc.tar

if [ -f /opt/hsc/data/irqtune-0.6-1.i386.rpm ]
then
   rpm -i /opt/hsc/data/irqtune-0.6-1.i386.rpm --force
fi

if [ -x /sbin/irqtune ]
then
   /sbin/irqtune 3
fi

# Confirm if need to install the snia cimom database.
NAME_SPACE=root/ibmhscV1_0
if [ -d /var/sniacimom/persistence/classes/$NAME_SPACE ]; then
   echo " Would you like to overwrite the existing Cimom database? [No/Yes]"
   read answer
   if [ "$answer" = "Yes" -o "$answer" = "YES" -o "$answer" = "yes" ]; then
      rm -rf /var/sniacimom/persistence/classes/$NAME_SPACE
      rm -rf /var/sniacimom/persistence/qualifiers/$NAME_SPACE
      rm -rf /var/sniacimom/persistence/instances/$NAME_SPACE
   fi
fi


if [ ! -d /var/hsc/log ]
then
	mkdir -p /var/hsc/log
fi
# First it untars all the libraries needed
# for the trace/logging facility

echo "Setting up trace facility...."

if [ -f /opt/hsc/lib/hmcjni/hmcjni.tgz ]
then
   cd /opt/hsc/lib/hmcjni
   tar -xzf hmcjni.tgz
   cd /
fi

if [ -f /usr/lib/hmcruntime.tgz ]
then
   tar -xzf /usr/lib/hmcruntime.tgz
fi

# Sets up the java security policy in order
# for the trace/logging code to run


echo "Update RMI policy..."
if [ -f /usr/java/jre/lib/security/java.security ]
then
  t=`grep "/opt/hsc/lib/hmcjni/rmipolicy" /usr/java/jre/lib/security/java.security`
  mrc=$?
  if [ $mrc -eq 1 ]
  then
    x=`grep url /usr/java/jre/lib/security/java.security | cut -d'.' -f 3 | cut -d'=' -f 1`
    for i in $x
    do
       n=$i
    done
    typeset -i k=$n+1
    echo "policy.url.$k=file:/opt/hsc/lib/hmcjni/rmipolicy" >> /usr/java/jre/lib/security/java.security
  fi
fi

if [ -f /usr/java130/jre/lib/security/java.security ]
then
  t=`grep "/opt/hsc/lib/hmcjni/rmipolicy" /usr/java130/jre/lib/security/java.security`
  mrc=$?
  if [ $mrc -eq 1 ]
  then
    x=`grep url /usr/java130/jre/lib/security/java.security | cut -d'.' -f 3 | cut -d'=' -f 1`
    for i in $x
    do
      n=$i
    done
    typeset -i k=$n+1
    echo "policy.url.$k=file:/opt/hsc/lib/hmcjni/rmipolicy" >> /usr/java130/jre/lib/security/java.security
  fi
fi

export LD_LIBRARY_PATH=/usr/lib:/opt/hsc/lib/hmcjni:$LD_LIBRARY_PATH

if [ -f $CIMOMID ]; then
   echo "SNIA Cimom is running ..."
else
   /opt/hsc/bin/initCIMOM start
fi
sleep 5
echo "Compiling MOF files..."
/opt/hsc/bin/compileMof

/opt/hsc/bin/initCIMOM stop
